package com.warehouse_management.system.dao;

import com.warehouse_management.login.model.Users;
import com.warehouse_management.system.model.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface ISystemDao {

    //查询全部职位
    public List<Job> queryAllJob(Job job);
    public List<Job> queryAllJobById(Job job);

    //增加职位
    public int addJobPosition(JobCondition job);

    //修改职位
    public int updateJobPosition(JobCondition job);

    //修改职位状态
    public int updateJobPositionByState(JobCondition job);

    //获得模块数据
    public List<Module> queryAllMoud0();
    public List<Module> queryAllMoud1();
    public List<Module> queryAllMoud2();
    public List<Module> queryAllMoud3();
    public List<Module> queryAllMoud4();
    public List<Module> queryAllMoud5();

    public int addpermiss(Permission permission);

    /**
     * 陈博
     * 多条件 分页查询  获取总记录数
     * @param dept
     * @return
     */
    List<Users> getUserListByUsers(Dept dept);

    /**
     * 陈博
     * 添加员工
     * @param user
     * @return
     */
    public int addUser(Users user);

    /**
     * 林涛
     * 查询user集合 分页
     * @return user集合
     */
    List<Users> getUserList();


    /**
     * 连小龙
     * 查询全部模块
     * @param
     * @return
     */
     List<Module> queryAllModule(Module module);

    /**
     * 连小龙
     * 通过模块名称查询模块
     * @param name
     * @return
     */
     List<Module> queryAllModuleByName(String name);

    /**
     * 连小龙
     * 通过模块id查询模块
     * @param module_id
     * @return
     */
    List<Module> queryAllModuleById(String module_id);

    /**
     * 连小龙
     * 增加模块
     * @param module
     * @return
     */
     int addModulePosition(Module module);

    /**
     * 连小龙
     * 修改模块内容
     * @param module
     * @return
     */
     int updateModulePosition(Module module);


    /**
     * 连小龙
     * 修改模块状态
     * @param md
     * @return
     */
     int updateModulePositionByState(Module md);

    /**
     * 周永成
     * 查询日志
     * @return 日志集合
     */
    public List<Journal> queryAllJournal();

    /**
     * 周永成
     * 根据id查询日志
     * @return 用户日志
     */
    public Journal queryJournalById(Integer id);


    /**
     * 周永成
     * 模糊查询
     * @param j_Id              员工编号
     * @param uname             员工姓名
     * @param jcontent          日志内容
     * @param module_rname      操作模块
     * @param jdate1            记录时间1
     * @param jdate2            记录时间2
     * @return                  日志结果
     */
    public List<Journal> queryJournalByLike(@Param("j_Id") Integer j_Id,
                                            @Param("uname") String uname,
                                            @Param("jcontent") String jcontent,
                                            @Param("module_rname") String module_rname,
                                            @Param("jdate1")String jdate1,
                                            @Param("jdate2")String jdate2);



    /**
     * 邹佳乐
     * 多表查询区域管理
     */
    public List<City> queryAllCity(@Param("sheng") String sheng , @Param("shi")String shi);

}
